package mspbots.autotask.client.core;

import mspbots.autotask.client.core.client.ClientProperties;
import reactor.core.publisher.Mono;

/**
 * mspbots.core.autotask.core.BaseSyncService
 *
 * @author <a href="https://github.com/vnobo">Alex bob</a>
 * @date Created by 2020/7/10
 */
public interface BaseSyncService {

    /**
     * sync all to mq get core
     * ever 5 muns
     *
     * @param properties sync property
     * @return Mono<Void> default mono
     */
    default Mono<Void> syncFast(ClientProperties properties) {
        return Mono.empty();
    }

    /**
     * sync slow  to mq get core
     * ever one hour
     *
     * @param properties sync property
     * @return Mono<Void> default mono
     */
    default Mono<Void> syncSlow(ClientProperties properties) {
        return Mono.empty();
    }


    /**
     * sync all core result
     *
     * @param properties sync property
     * @return Mono<Void> default mono
     */
    default Mono<Void> syncInformation(ClientProperties properties) {
        return Mono.empty();
    }
}
